const { get } = require('../../helper/db');
const { decrypt, ok, door } = require('../../helper/util');

/**
 * @apiDefine ErrorResponse
 * @apiError (请求错误) {String} err_message 错误信息描述
 */

/**
 * @apiVersion 1.0.0
 * @apiGroup 用户
 * @api {GET} api/user/detail 用户详情
 * @apiName api/user/detail
 * @apiExample {js} axios 例子:
 *  axios.get('http://39.105.38.34:8080/api/user/detail', {
 *    params: {
 *      userid: 1,
 *    }
 *  });
 * @apiHeader {String} authorization 用户登录或注册成功时返回的 token
 * @apiParam {Number} [userid] 想要获取用户的 id, 不传的话默认是自己的 id;
 * @apiSuccess (请求成功) {Object} user 用户信息
 * @apiuse  ErrorResponse
 */

module.exports = async ctx => {
  var token = ctx.headers.authorization;
  var params = ctx.query;
  var user = await door(token);
  var user = params.userid ? await get('user', Number(params.userid)) : user;

  ctx.body = ok(user);
};
